package com.lyw.forum.service;

import com.lyw.forum.pojo.request.ModifyPasswordRequest;
import com.lyw.forum.pojo.request.UserLoginRequest;
import com.lyw.forum.pojo.request.UserModifyRequest;
import com.lyw.forum.pojo.request.UserRegisterRequest;
import com.lyw.forum.pojo.response.UserLoginResponse;
import com.lyw.forum.pojo.response.UserSelectResponse;

public interface IUserService {

    /**
     * 创建一个普通用户
     */
    void createNormalUser(UserRegisterRequest userRegisterRequest);

    /**
     * 处理用户登录
     * @return 登录信息
     */
    UserLoginResponse login(UserLoginRequest userLoginRequest);

    /**
     * 根据Id获取用户信息
     */
    UserSelectResponse selectById(Integer id);

    /**
     * 更新用户文章数
     * @param id 用户id
     */
    void addOneArticleCountById(Integer id);

    /**
     * 用户文章数 -1
     * @param id 用户id
     */
    void subOneArticleCountById(Integer id);

    /**
     * 修改用户信息
     * @param userModifyRequest 要更新的对象
     */
    void modifyUserInfo(UserModifyRequest userModifyRequest);

    /**
     * 修改密码
     * @param modifyPasswordRequest 更新的密码对象
     */
    void modifyPassword(ModifyPasswordRequest modifyPasswordRequest);
}
